The present invention relates to image display systems. In particular, the present invention relates to an image display system and method capable of preventing an image tearing effect (hereinafter, referred to as a “tearing effect”) by means of a single buffer.
An image display system is generally comprised of a frame buffer, a display controller, and a display device. The frame buffer includes pluralities of memory cells arranged in rows and columns. Each cell of the frame buffer stores image data to be displayed on the display device. The row of the frame buffer corresponds to a line. The frame buffer is correspondent with the display device in size. For example, if the display device has a panel of 320×240 pixels, the frame buffer is formed of 240 lines (i.e., rows). Each line is composed of memory cells (hereinafter, referred to as “cells”) corresponding to 320 pixels. The display device supporting the array of 320×240 pixels is configured to display 320-pixel data on each of 240 lines.
In the image display system, the frame buffer stores image data that is to be presented into the display device. During a reading mode of the image display system, the display controller reads image data from the frame buffer and provides the read image data to the display device. The display device drives the image data to the display device for display. Image data are updated to the frame buffer and the updated image data are driven into the display device through reading and writing operations of the image display system.
In the image display system, a writing operation progresses faster than a reading operation while the writing operation coincides with the reading operation.
If the frame buffer is configured to include 240 lines, the writing and reading operations are sequentially conducted from the first line to the 240'th line of the frame buffer. During this operation, a line of the frame buffer is designated by an address, by which the writing or reading operation for image data is conducted to the line designated by the address.
While repeating those operations, addresses provided to the frame buffer in writing and reading operations may be the same. For example, there is a case that a writing operation for storing updated image data into the 50'th line of the frame buffer coincides with a reading operation to the 50'th line of the frame buffer by the display controller. During this, as the reading and writing operations of the image display system are running at the 50'th line of the frame buffer, addresses for the reading and writing operations become the same. Under the condition with the same addresses, since the writing operation proceeds faster than the reading operation, the updated image data is first stored in the 50'th line of the frame buffer. Afterward, the display controller provides the updated image data, not current image data, to the display device during the reading operation to the 50'th line of the frame buffer.
From the 50'th line of the frame buffer, updated image data is stored by a writing operation faster than a reading operation. Accordingly, the display controller reads the updated image data after the 50'th line of the frame buffer and provides the read updated image data to the display device. In this case, the current image data is presented on the lines before the 50'th line of the display device, while the updated image data is presented the lines after the 50'th line of the display device. The phenomenon that the current image data and the updated image data appear on an arbitrary border of lines is called the “tearing effect”.
Generally, an image display system is operable in burst access by way of a burst mode. The image display system generates a start address for reading and writing operations. The burst access is conducted to a memory by generating addresses as much as a burst length established from the start address. That is, the image display system accesses the memory in units of burst length.
As an example, assuming that: a burst length is 8; a start address for a reading operation is correspondent to the 50'th line of the frame buffer; and a start address for a writing operation is correspondent to the 40'th line of the frame buffer, the reading operation is conducted along the 50'th through the 57'th lines and the writing operation is conducted along the 40'th through the 47'th lines. In this case, a difference between the start addresses of the reading and writing operations is larger than the burst length, without overlap between reading and writing addresses during the reading and writing operations. In contrast, if a start address for the reading operation is correspondent to the 50'th line of the frame buffer but a start address for the writing operation is correspondent to the 45'th line of the frame buffer, the reading operation is conducted along the 50'th through the 57'th lines but the writing operation is conducted along the 45'th through the 52'nd lines. In this case, a difference between the start addresses of the reading and writing operations is less than the burst length, reading addresses overlapping with writing addresses over the 50'th through the 52'th lines. Thus, in this case, there is no tearing effect.
Some image display systems employ a dual buffer in order to prevent the tearing effect. The dual buffer is formed of a pair of frame buffers. Current image data stored in one of the two frame buffers is presented into a display device by a reading operation of the image display system. While the current image data of one buffer of the dual buffer structure is being driven into the display device, updated image data is stored in the other buffer by a writing operation of the image display system. The image display system is able to prevent the tearing effect by alternately conducting reading and writing operations with the frame buffers of the dual buffer structure.
However, there is a drawback to the image display system having two frame buffers in that the system has increased size and current consumption.